package solved;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

/*
ID:		liluyan1
LANG:	JAVA
TASK:	nocows
*/
public class nocows {
	public static void main(String[] args) throws IOException {
		BufferedReader f = new BufferedReader(new FileReader("nocows.in"));
		PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(
				"nocows.out")));
		new nocows().solve(f, out);
		out.close();
		System.exit(0);
	}
	
	private int MOD = 9901;
	
	private void solve(BufferedReader f, PrintWriter out) throws IOException {
		int[] a = read(f, 2);
		int N = a[0];
		int K = a[1];
		
		int[][] dp = new int[K][N+1];
		int[][] sum = new int[K][N+1];
		dp[0][1] = 1;
		sum[0][1] = 1;
		
		for (int k=1; k<K; k++) {
			for (int n=1; n<=N; n++) {
				for (int i=1; i<n-1; i++) {
					dp[k][n] = (dp[k][n] + dp[k-1][i]*dp[k-1][n-1-i] + 
							(k>1? dp[k-1][i]*sum[k-2][n-1-i]:0) + 
							(k>1? dp[k-1][n-i-1]*sum[k-2][i]:0))%MOD;
				}
			}
			
			for (int n=1; n<=N; n++) sum[k][n] = (sum[k-1][n] + dp[k][n])%MOD;
		}
		
		out.println(dp[K-1][N]);
	}
	
	public int read(BufferedReader f) throws IOException {
		return Integer.parseInt(f.readLine());
	}
	
	public int[] read(BufferedReader f, int N) throws IOException {
		String[] t = f.readLine().split(" ");
		int[] a = new int[N];
		for (int i=0; i<N; i++) {
			a[i] = Integer.parseInt(t[i]);
		}
		return a;
	}
}
